GitHub Actions集成

云安全中心提供的CI/CD插件支持对GitHub中构建的镜像进行自动化安全扫描。使用该功能前,您需要在GitHub中集成CI/CD插件。本文为您介绍如何将云安全中心的CI/CD插件集成到GitHub。

操作步骤

  1. 登录GitHub。

  2. 单击右上角头像,在下拉菜单中选中Your repositories

  3. repositories页签下,单击您要集成CI/CD插件的repository

  4. 单击Actions页签。

  5. 在All workflows列表中,定位到要集成CI/CD插件的workflows流水线文件,单击其Actor列的更多

  6. 在下拉菜单中,选择View workflow file

  7. Workflow file for this run中按照以下样例进行集成配置。

    name: Docker build and scan security issue by sas-image-scanner
    
    on:
      push:
        branches: [ main ]
      pull_request:
        branches: [ main ]
    
    env:
      REPO_TAG: your_docker_image_repo:your_docker_image_tag
    
    jobs:
    
      build:
    
        runs-on: ubuntu-latest
    
        steps:
        - uses: actions/checkout@v2
        - name: Build the Docker image
          run: docker build . --file Dockerfile --tag ${{ env.REPO_TAG }}
        - name: Scan image by sas-image-scanner
          run: >
              docker run --rm -v /var/run/docker.sock:/var/run/docker.sock --network=host
              sas-image-scanner-registry.cn-hangzhou.cr.aliyuncs.com/sas_public/sas-image-scanner:latest
              --accessKeyId=${{ secrets.ACCESSKEYID }} --accessKeySecret=${{ secrets.ACCESSKEYSECRET }}
              --token=${{ secrets.SAS_TOKEN }} --imageId=${{ env.REPO_TAG }}

    相关配置参数说明如下:

    参数

    是否必填

    参数说明

    accessKeyId

    建议通过GitHub的secrets变量注入阿里云账号或RAM用户的AccessKey。

    重要

    强烈建议使用RAM用户的AccessKey。阿里云账号的AccessKey是您访问阿里云API的密钥,具有账户的完全权限,请您妥善保管并且不要以任何方式公开到外部渠道,避免被他人利用造成安全威胁。建议您遵循阿里云安全最佳实践,使用RAM用户的AccessKey进行API调用。

    accessKeySecret

    建议通过GitHub的secrets变量注入阿里云账号或RAM用户的AccessKey Secret。

    重要

    强烈建议使用RAM用户的AccessKey Secret。阿里云账号的AccessKey是您访问阿里云API的密钥,具有账户的完全权限,请您妥善保管并且不要以任何方式公开到外部渠道,避免被他人利用造成安全威胁。建议您遵循阿里云安全最佳实践,使用RAM用户的AccessKey进行API调用。

    token

    阿里云云安全中心CI/CD插件的接入Token。获取CI/CD接入Token的具体操作,请参见接入配置

    imageId

    待扫描镜像标识。默认支持本地扫描。

    • 本地镜像支持传入ImageId或Repo:Tag。

    • 远程镜像需传入RegistryUrl或Repo:Tag,并需填写镜像仓凭证。

      重要

      如果要扫描远程镜像仓中的镜像,您需要正确填写远程镜像的RegistryUrl、RegistryUsername、RegistryPassword的这三个参数。

    domain

    云安全中心接入点。请填写:sas.aliyuncs.com。

    registryUrl

    镜像仓的URL。

    重要

    扫描远程镜像仓中的镜像时,此参数必填。

    registryUsername

    镜像仓登录用户名。

    重要

    扫描远程镜像仓中镜像时,此参数必填。

    registryPwd

    镜像仓登录密码。

    重要

    扫描远程镜像仓中镜像时,此参数必填。

    集成配置完成后,您在构建项目时,会自动同步执行镜像安全扫描任务,扫描您项目的镜像是否存在安全风险。

后续步骤

您可以在资产中心的容器页签下,查看镜像安全扫描结果。具体操作,请参见查看镜像扫描结果